package com.soar.tbox;

import java.util.HashMap;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;

/**
 * 对定时类的任务进行管理
 * 
 * @author songjunjie
 * 
 */
public class TboxTimer {
	private static Map<String, TimerTask> taskMap = new HashMap<String, TimerTask>();
	private static Timer timer = new Timer();
	
	/**
	 * 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
	 * @param cmdName 任务对应停止指令的名称
	 * @param task 任务
	 * @param delay 执行任务前的延迟时间，单位是秒。
	 * @param period 行各后续任务之间的时间间隔，单位是秒。
	 */
	public static void schedule(String cmdName,TimerTask task,long delay, long period){
		timer.schedule(task, delay*1000, period*1000);
		taskMap.put(cmdName, task);
	}

	/**
	 * 取消执行定时任务
	 * 
	 * @param name
	 */
	public static void sotpTask(String name) {
		TimerTask task = taskMap.get(name);
		task.cancel();
		taskMap.remove(name);
	}
}
